# 列表的深拷贝与浅拷贝

varl = [1, 2, 3]

# 简单的拷贝，可以把列表复制一份
newlist = varl.copy()

print(varl, id(varl))
print(newlist, id(newlist))
'''
[1, 2, 3] 2580721347456
[1, 2, 3] 2580723708032
'''

varl = [[1, 2, 3], ['a', 'b', 'c']]
newlist = varl.copy()
print(varl[0], id(varl[0]))
print(newlist[0], id(newlist[0]))
'''
[1, 2, 3] 2915986137024
[1, 2, 3] 2915986137024
'''

# 被拷贝的列表是一个多维列表，如果对新拷贝的列表中列表元素进行操作时，会导致原列表中的列表元素也会发生改变
# 这种拷贝就是浅拷贝，只能拷贝当前列表，不能拷贝列表中的多维列表

# 深拷贝：不止拷贝当前列表，同时把列表中的多维元素也拷贝一份
# 使用copy模块中的deepcopy方法
# 引入模块copy
import copy

varl = [[1, 2, 3], ['a', 'b', 'c']]
newlist = copy.deepcopy(varl)
varl[0][1] = 'b'
print(varl)
print(newlist)
'''
[[1, 'b', 3], ['a', 'b', 'c']]
[[1, 2, 3], ['a', 'b', 'c']]
'''


